Persisted Query
Trusted Document の一例
事前に利用するクエリを GraphQL サーバに登録し、登録されたクエリのみを許可する
具体的な処理フロー
https://cdn-ak.f.st-hatena.com/images/fotolife/Y/YutaUra/20240328/20240328184817.png
https://blog.studysapuri.jp/entry/2024/04/15/100000
1. GraphQL-Codegen などのツールを用いてクライアントアプリで利用しているクエリをまとめ、それぞれを ハッシュ化 し、元となったクエリとともにサーバへ保存する
code:json
{
// "query": "query GetUser { user { name age } }",
"operationName": "GetUser",
"variables": {},
"extensions": {
"persistedQuery": {
"version": 1,
"sha256Hash": "xxxxxxxxxx" // send hash value instead of query
}
}
}
2. クライアントからは、クエリをハッシュ化したものを用いてリクエストを行う
3. サーバはハッシュに対応するクエリを見つけて実行する
クエリが存在しない場合、想定していないクエリと判断してエラーを返す
参考
/wada-blog/GraphQL の Persisted Queries について#6325f337fc47660000421b9b
https://www.apollographql.com/docs/kotlin/advanced/persisted-queries/
https://qiita.com/Quramy/items/b3943a0c27f3ade2c57d
https://blog.studysapuri.jp/entry/2024/04/15/100000
#GraphQL